function tablemath(divID,method,rangeStr) { var result; var div = document.getElementById(divID); var table = div.parentNode.parentNode.parentNode; var setArray = tmSetToArray(table, rangeStr); switch(method) { case 'sum': break; case 'avg': break; default: method = 'unknown'; break; } eval('result = tm'+method+'(setArray);'); div.innerHTML = result; } function tmSetToArray(table, rangeStr) { //range should be like this x,y:x,y var range = rangeStr.split(':'); var start = range[0].split(','); var end = range[1].split(','); var startX = start[0]; var startY = start[1]; var endX = end[0]; var endY = end[1]; var set = new Array(); for(var x = startX; x<=endX; x++) { for(var y = startY; y<=endY; y++) { set.push(tmParseValue(table.rows[y].cells[x])); } } //alert(set); return set; } function tmParseValue(cell) { var value = parseInt(cell.innerHTML); if (isNaN(value)) { value = 0; } return value; } function tmunknown(setArray) { return 'Error'; } function tmsum(setArray) { var sum = 0; for (var i=0; i